1. Technical Field
The present inventive concept herein relates to an endecryptor capable of performing parallel processing and an endecryption method thereof.
2. Description of Related Art
Encryption technologies are frequently used to ensure security of data transmission. In an encryption technology, plaintext is encrypted at a transmission side, and ciphertext is decrypted at a receiving side. Encryption of plaintext and decryption of ciphertext are well-known aspects of encryption technologies.
One type of encryption protocol is the block cipher. On a data network, an encryption device uses a block cipher to secure data and various modes of operation in which practical encryption is performed using the block cipher.
Generally, the block cipher is a symmetric key cipher operating on fixed-length groups of bits, called blocks, with an unvarying transformation. A block cipher encryption approach might take, for example, a 128-bit block of plaintext as input and output a corresponding 128-bit block of ciphertext. The exact transformation is controlled using a second input, the secret key. Decryption is similar; the decryption algorithm takes, in this example, a 128-bit block of ciphertext together with the secret key, and yields the original 128-bit block of plaintext.
The data encryption standard (DES) is a block cipher protocol adopted as the standard in many countries and by the American National Standards Institute (ANSI). Additional standards include the triple-data encryption standard (3-DES) and the advanced encryption standard (AES). DES has been superseded as a United States Federal Standard by the AES.
A generalized version of block ciphers, referred to as “tweakable” block ciphers, has been developed. A tweakable block cipher accepts a second input called the “tweak” along with its usual plaintext or ciphertext input. The tweak, along with the key, selects the permutation computed by the cipher. Changing tweaks is generally less expensive than key setup operations, resulting in some new modes becoming possible.
Generally, block ciphers operate on blocks of fixed length. However, messages may be of any length and therefore must be broken into blocks before encryption. However, encrypting the same block under the same key produces the same output, and encrypting each block in isolation is inadequate for confidentiality. As a result, block cipher modes of operation were developed to address this problem.
In the block cipher protocol, various modes of operation are defined. These modes include electronic codebook (ECB), cipher block chaining (CBC), output feedback (OFB), cipher feedback (CFB), XOR-encrypt-XOR (XEX), and XEX encryption mode with tweak and ciphertext stealing (XTS). Ciphertext stealing is a technique of altering processing of the last two blocks of plaintext, resulting in a reordered transmission of the last to blocks of ciphertext and no ciphertext expansion. This is accomplished by padding the last plaintext block, which is possibly incomplete, with the high-order bits from the second to last ciphertext block, i.e., “stealing” the ciphertext from the second to last block. The resulting full last block is encrypted and then exchanged with the second to last ciphertext block, which is then truncated to the length of the final plaintext block, removing the bits that were “stolen,” resulting in ciphertext of the same length as the original message size. The processing of all but the last two blocks in unchanged.
It should be noted that the terms “endecryptor” and “endecryption” used herein refer to a device and/or process which are capable of performing encryption and/or decryption.